#ifndef SIZE_H
#define SIZE_H

#include "model/vertex.h"

class Limits {

    //-------------------------------------------------------------//
    //                          ATTRIBUTES                         //
    //-------------------------------------------------------------//

protected:
    Vertex lower, greater;

    //-------------------------------------------------------------//
    //                          METHODS                            //
    //-------------------------------------------------------------//

public:

    Limits();

    /**
     * Obtém a largura do objeto
     */
    coord width() const;

    /**
     * Obtém a altura do objeot
     */
    coord height() const;

    /**
     * Obtém o ponto central do objeto
     * @return
     */
    Vertex center() const;

protected:

    /**
     * Atualiza os limites do objeto
     */
    virtual void updateLimits(const Vertex &vertex);

    /**
     * Reseta os limites do objeto
     */
    virtual void resetLimits();
};

#endif // SIZE_H

